/*
 * common.h
 *
 *  Created on: 2017年9月9日
 *      Author: xzl
 */

#ifndef SRC_COMMON_H_
#define SRC_COMMON_H_

#include <stdint.h>

#if defined(_WIN32)
	#if defined(LIB_EXPORTS)
		#define API_EXPORT __declspec(dllexport)
	#else
		#define API_EXPORT __declspec(dllimport)
	#endif //defined(TcpProxy_shared_EXPORTS)

	#define CALLTYPE __cdecl
#else
	#define API_EXPORT
	#define CALLTYPE
#endif


#ifdef __cplusplus
extern "C" {
#endif



/////////////////////////environment init////////////////////////////////
API_EXPORT void CALLTYPE onAppStart();
API_EXPORT void CALLTYPE onAppExit();

/*
 * 描述:创建RTSP服务器
 * 参数:port:rtsp监听端口，推荐554
 * 返回值:0:成功;-1:失败
 */
API_EXPORT int CALLTYPE initRtspServer(unsigned short port);


/*
 * 描述:播放事件回调函数定义
 * 参数:userData:用户数据指针strApp:应用名,strStream:流名称
 */
typedef void (CALLTYPE *onEventPlay)(void *userData,const char *strApp,const char *strStream);
/*
 * 描述:监听事件
 * 参数:cb:回调函数指针,userData:用户数据指针
 * 返回值:无
 */
API_EXPORT void CALLTYPE listenEvent_onPlay(onEventPlay cb,void *userData);

/*
 * 描述:注册RTSP事件
 * 参数:userData:用户数据指针strApp:应用名,strStream:流名称
 */
typedef void (CALLTYPE *onEventRegistMediaSrc)(void *userData,const char *strApp,const char *strStream);
/*
 * 描述:监听事件
 * 参数:cb:回调函数指针,userData:用户数据指针
 * 返回值:无
 */
API_EXPORT void CALLTYPE listenEvent_onRegistRtsp(onEventRegistMediaSrc cb,void *userData);

#ifdef __cplusplus
}
#endif


#endif /* SRC_COMMON_H_ */
